package org.demoiselle.sample.security;


import javax.enterprise.inject.Alternative;
import javax.inject.Inject;

import br.gov.frameworkdemoiselle.security.Authenticator;
import br.gov.frameworkdemoiselle.security.User;

@Alternative
public class Autenticador implements Authenticator {	
	
	private static final long serialVersionUID = 1L;
	@Inject
	private Credenciais credenciais;	
     
        @Override
        public void authenticate() {
            String nome = credenciais.getNome();
            String senha = credenciais.getSenha();
     
            boolean autenticado = false;
     
            if (credenciais.getNome().equals("usuario") && credenciais.getSenha().equals("secreto")) {
                autenticado = true;
            } else if (credenciais.getNome().equals("admin") && credenciais.getSenha().equals("secreto")) {
                autenticado = true;
            }
     
           
			return;
        }
     
        public void unAuthenticate() {
            credenciais.clear();
        }
     
        public Credenciais getCredenciais() {
			return credenciais;
		}

		public void setCredenciais(Credenciais credenciais) {
			this.credenciais = credenciais;
		}

		@Override
        public User getUser() {
            return new User() {     
                
				private static final long serialVersionUID = 1L;

				@Override
                public String getId() {
                    return credenciais.getNome();
                }
     
                @Override
                public void setAttribute(Object key, Object value) {
                }
     
                @Override
                public Object getAttribute(Object key) {
                    return null;
                }
            };
        }

		@Override
		public void unauthenticate() throws Exception {
			// TODO Auto-generated method stub
			
		}
    }